package tp.view;

import tp.model.Borde;
import tp.controller.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.util.Observable;
import java.util.Observer;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageDecoder;

public class BordeHorView extends Component implements Observer {

	private Graphics g;

	public Borde borde;

	public BufferedImage bordeImage;

	public BordeHorView(Borde unBorde) {
		unBorde.addObserver(this);
		borde = unBorde;
		g = this.getGraphics();
		checkOffscreenImage();
		// update(misil,null);
	}

	private void checkOffscreenImage() {
		Dimension d = CopyOfBoardView1.panel.getSize();// Dimension d =
														// getSize();
		InputStream in = getClass().getResourceAsStream("bordeHorizontal.jpg");
		JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
		try {
			bordeImage = decoder.decodeAsBufferedImage();
			in.close();
		} catch (Exception ex) {
		}
	}

	public void paint(Graphics g) {
		// Dimension d = this.getParent().getSize();
		Dimension d = CopyOfBoardView1.panel.getSize();
		checkOffscreenImage();
		// Graphics offG = misilImage.getGraphics();
		// offG.setColor(Color.GRAY);// getBackground());
		// offG.drawImage(misilImage, 0, 0, d.width, d.height, null);
		// offG.fillRect(0, 0, d.width, d.height);

		// Dibujo la imagen propieamente dicha.
		paintOffscreen(bordeImage.getGraphics());

		// Renderizo la imagen finalmente en la pantalla.
		// g.drawImage(bordeImage,borde.MiPosicion.getXInt(),0,bordeImage.getWidth(),d.height,null);
		// g.setColor(Color.WHITE);
		g.drawImage(bordeImage, borde.getMiPosicion().getXInt()
				- bordeImage.getHeight(), d.height
				- borde.getMiPosicion().getYInt() - bordeImage.getHeight() / 2,
				Controlador.posbd.getXInt() - Controlador.posbi.getXInt() + 2
						* bordeImage.getHeight(), bordeImage.getHeight(), null);
		/*
		 * g.drawImage(naveImage,miNave.getMiPosicion().getXInt()-(int)miNave.getMiRadio(),d.height -
		 * miNave.getMiPosicion().getYInt()-(int)miNave.getMiRadio(),
		 * (int)miNave.getMiRadio()*2, (int)miNave.getMiRadio()*2,null);
		 */
	}

	public void paintOffscreen(Graphics g) {
		Dimension d = CopyOfBoardView1.panel.getSize();// Dimension d =
														// this.getParent().getSize();
		g.drawImage(bordeImage, borde.getMiPosicion().getXInt()
				- bordeImage.getHeight(), d.height
				- borde.getMiPosicion().getYInt() - bordeImage.getHeight() / 2,
				Controlador.posbd.getXInt() - Controlador.posbi.getXInt() + 2
						* bordeImage.getHeight(), bordeImage.getHeight(), null);

	}

	public void update(Observable unMisil, Object arg1) {
	}
}